As high-speed and high-performance communications become necessary for many applications such as data warehousing, decision support, mail and messaging, and transaction processing applications, a clustering technology has been adopted to provide availability and scalability for these applications. A cluster is a group of one or more host systems (e.g., computers, servers and workstations), input/output (I/O) units which contain one or more I/O controllers (e.g. SCSI adapters, network adapters etc.) and switches that are linked together by an interconnection fabric to operate as a single data network to deliver high performance, low latency, and high reliability. Clustering offers three primary benefits: scalability, availability, and manageability. Scalability is obtained by allowing servers and/or workstations to work together and to allow additional services to be added for increased processing as needed. The cluster combines the processing power of all servers within the cluster to run a single logical application (such as a database server). Availability is obtained by allowing servers to “back each other up” in the case of failure. Likewise, manageability is obtained by allowing the cluster to be utilized as a single, unified computer resource, that is, the user sees the entire cluster (rather than any individual server) as the provider of services and applications.
Emerging network technologies for linking servers, workstations and network-connected storage devices within a cluster include InfiniBand™ and its predecessor, Next Generation I/O (NGIO) which have been recently developed by Intel Corp. and other companies to provide a standard-based I/O platform that uses a channel oriented, switched fabric and separate I/O channels to meet the growing needs of I/O reliability, scalability and performance on commercial high-volume servers, as set forth in the “Next Generation Input/Output (NGIO) Specification,” NGIO Forum on Jul. 20, 1999 and the “InfiniBand™ Architecture Specification,” the InfiniBand™ Trade Association on Oct. 24, 2000.
One major challenge to implementing clusters based on NGIO/InfiniBand technology is to ensure that data messages traverse reliably between given ports of a data transmitter (source node) and a data receiver (destination node), via one or more given transmission (redundant) links of a switched fabric data network. Work queues formed in pairs, known as queue-pair (QP) may be utilized to process service requests (data movement operations such as message send/receive operations and remote direct memory access “RDMA” read/write operations) posted from clients to describe data movement operation and location of data to be moved for processing and/or transportation via a switched fabric data network. Each host may serve as a source (initiator) node which initiates a message data transfer (message send operation) or a target node of a message passing operation (message receive operation). One or more channels between communication devices at a host or between multiple hosts connected together directly or via a data network may be created and managed so that requested operations can be performed.
However, there may be instances where more than one entity on the same host wishes to send and receive data messages of the same fabric management class of service. Currently there is no mechanism defined in the InfiniBand™ Architecture Specification set forth on Oct. 24, 2000 to allow multiple clients to co-exist on the same host, that is, to send and receive data messages for the same fabric management service class on a particular host. As a result, multiple software such as InfiniBand™ bus driver software and InfiniBand™ subnet management software cannot co-exist efficiently on the same host since both send and receive data messages of the same fabric management service class.
Accordingly, there is a need for a more efficient mechanism to allow multiple clients to co-exist on the same host, including sending and receiving data messages for the same fabric management service class in a switched fabric data network.